www.gusucode.com > 动网论坛Dvbbs v8.3 > 动网论坛Dvbbs v8.3\code\源程序\inc\dv_setvote.js
document.charset = "gb2312"; if (window.Event){ // 修正Event的DOM Event.prototype.__defineSetter__( " returnValue " , function (b){ // if ( ! b) this .preventDefault(); return b; }); } if (window.Node){ Node.prototype.replaceNode = function (Node){ // 替换指定节点 this .parentNode.replaceChild(Node, this ); } Node.prototype.removeNode = function (removeChildren){ // 删除指定节点 if (removeChildren) return this .parentNode.removeChild( this ); else { var range = document.createRange(); range.selectNodeContents( this ); return this .parentNode.replaceChild(range.extractContents(), this ); } } } var getNameList = function(strName){return document.getElementsByName(strName);} //投票设置事件 //opmax 限制数 var voten = 0; function votetypeset(opobj,opmax){ //vote_set //hidden Textea ID:vote var s = opobj.options[opobj.selectedIndex]; var div_voteset = document.getElementById("voteset_div"); if (!div_voteset){return ;} document.getElementById("voteset_legend").innerHTML = s.text; //voteset_function var voteset_add = document.getElementById("voteset_add"); //添加投票项表单 voteset_add.innerHTML = voteset_input(s.value,opmax); document.getElementById("votetitles").innerHTML = ""; voteset_todata("vote","set_vote",s.value); } function voteset_input(s,opmax){ var _inputHmtl = '<input type="text" name="set_votetitle" id="set_votetitle" value="" size="80"/>'; _inputHmtl +=' <input type="button" name="put_vset" value="添加" onclick="voteadd_input('+s+',\'set_votetitle\','+opmax+');"/>'; //_inputHmtl +=' <br/><ol id="votetitles"></ol>'; return ("添加项目:" + _inputHmtl); } function voteadd_input(s,objid,opmax){ var titleobj = document.getElementById(objid); var voteset_function = document.getElementById("votetitles"); if (!titleobj){return ;} if (titleobj.value==''){alert("请填写相应的内容 !");return ;} if (document.getElementsByName("set_vote")){ if (document.getElementsByName("set_vote").length>=parseInt(opmax)){ alert("投票数目超出限制!"); return ; } } voten = voten + 1; var child_Html = ""; child_Html = '<li id="set_vote_'+voten+'">投票项目:<input type="text" name="set_vote" id="set_vote" value="'+titleobj.value+'" onBlur="voteset_todata(\'vote\',\'set_vote\','+s+');" size="80"/> <input type="button" name="del_vset" value="删除" onclick="votedel_input(\'set_vote_'+voten+'\','+s+');"/>'; //问卷调查增加填写表单 if (s=='2'){ child_Html += ' <br/>子项数:<input maxlength="2" onkeyup="votechild_input('+voten+','+s+');" name="vote_childs_'+voten+'" id="vote_childs_'+voten+'" type="text" value="4" size="1"/>'; child_Html += ' 类型:<select id="vote_childtype_'+voten+'" name="vote_childtype_'+voten+'" onchange="votechild_input('+voten+','+s+');"><option value="0">单选</option><option value="1">多选</option><option value="2">文本</option></select>'; child_Html += ' <input type="hidden" name="voten" id="voten" value="'+voten+'"/><input type="button" name="add_vsetchild" value="添加子项" onclick="votechild_input('+voten+','+s+');"/>'; child_Html += ' <ol type="A" id="vchild_ol_'+voten+'"></ol>' } child_Html += '</li>'; voteset_function.innerHTML += child_Html; voteset_todata("vote","set_vote",s); } function votechild_input(objid,s){ var child_ol = document.getElementById("vchild_ol_"+objid); var child_Html = ""; var AddChilds = document.getElementById("vote_childs_"+objid); var ChildsType = document.getElementById("vote_childtype_"+objid); if (isNaN(AddChilds.value)){ AddChilds.value = 4; } if (ChildsType.options[ChildsType.selectedIndex].value=='2'){AddChilds.value=1;} AddChilds.value = parseInt(AddChilds.value); var AddLength = parseInt(AddChilds.value); if (child_ol){ for(var i=1; i<=AddLength; i++) { child_Html +='<li id="vchild_li_'+objid+'">'; if (ChildsType.options[ChildsType.selectedIndex].value=='2'){ child_Html +='答案:<textarea id="vchild_input_'+objid+'" name="vchild_input_'+objid+'" onBlur="if (this.value==\'\'){this.value=\'null\';};voteset_todata(\'vote\',\'set_vote\','+s+');" style="width:460px;height:50px;">null</textarea>'; }else { switch (ChildsType.options[ChildsType.selectedIndex].value){ case '0': child_Html +='<input type="radio" name="" class="radio"/>'; break; case '1': child_Html +='<input type="checkbox" name="" class="chkbox"/>'; break; } child_Html +='<input type="text" id="vchild_input_'+objid+'" name="vchild_input_'+objid+'" onblur="voteset_todata(\'vote\',\'set_vote\','+s+');" size="80"/> 得分:<input type="text" name="vchild_ep_'+objid+'" id="vchild_ep_'+objid+'" value="0" onBlur="voteset_todata(\'vote\',\'set_vote\','+s+');" size="3"/>'; } child_Html +='</li>'; } child_ol.innerHTML=child_Html; } voteset_todata("vote","set_vote",s); } function voteset_todata(objid,valobjid,s){ var votedb_Obj = document.getElementById(objid); //隐藏表单 //var voteval_Obj = document.getElementsByName(valobjid); //var voten = document.getElementsByName("voten"); var voteval_Obj = getNameList(valobjid); var voten = getNameList("voten"); votedb_Obj.value = ""; for(var i=0; i<voteval_Obj.length; i++) { voteval_Obj[i].value = voteval_Obj[i].value.replace(/@@|\$\$|\|/g,''); if(voteval_Obj[i].value!='') { votedb_Obj.value += voteval_Obj[i].value.replace(/\r/g,''); if (s=='2'){ if (voten[i]){ votedb_Obj.value += "@@"; var ChildsType = document.getElementById("vote_childtype_"+voten[i].value); //var ChildsValue = document.getElementsByName("vchild_input_"+voten[i].value); //var ChildsEP = document.getElementsByName("vchild_ep_"+voten[i].value); var ChildsValue = getNameList("vchild_input_"+voten[i].value); var ChildsEP = getNameList("vchild_ep_"+voten[i].value); votedb_Obj.value += ChildsType.options[ChildsType.selectedIndex].value; votedb_Obj.value += "@@"; for(var j=0; j<ChildsValue.length; j++) { ChildsValue[j].value = ChildsValue[j].value.replace(/@@|\$\$|\|/g,''); if (ChildsValue[j].value!=''){ votedb_Obj.value += ChildsValue[j].value.replace(/\r|\n/g,'<br/>'); votedb_Obj.value += "$$"; } } votedb_Obj.value += "@@"; if (ChildsEP.length>0){ for(var j=0; j<ChildsValue.length; j++) { ChildsValue[j].value = ChildsValue[j].value.replace(/@@|\$\$|\|/g,''); if (ChildsValue[j].value!=''){ if (isNaN(ChildsEP[j].value)){ ChildsEP[j].value = 0; } ChildsEP[j].value = parseInt(ChildsEP[j].value); votedb_Obj.value += ChildsEP[j].value.replace(/@@|\$\$|\||\r/g,''); votedb_Obj.value += "$$"; } } } } } votedb_Obj.value += '\r'; } } } function votedel_input(objid,s){ var del_Obj = document.getElementById(objid); //删除表单 if (del_Obj){ del_Obj.removeNode(true); voteset_todata("vote","set_vote",s); } } //保存数据到临时复制板 function SaveDBtoText(objid){ var voteset_function = document.getElementById("voteset_function"); if (voteset_function){ //event.returnValue = false; if (setClipboard(voteset_function.innerHTML)){ var sobj = document.getElementById("votetype"); var s = sobj.options[sobj.selectedIndex]; alert("当前投票内容保存成功,还原时选确认投票类型为:"+s.text+"!") }else{ alert("系统不支持您的浏览器进行复制保存!") } } } function PutDBFromText(objid){ var voteset_function = document.getElementById("voteset_function"); if (voteset_function){ //event.returnValue = false; var SaveDB = window.clipboardData.getData("Text"); if (SaveDB!="SaveDB"){ voteset_function.innerHTML = SaveDB; var sobj = document.getElementById("votetype"); var s = sobj.options[sobj.selectedIndex].value; voteset_todata("vote","set_vote",s); } } } //将字符串maintext复制到剪贴板 function setClipboard(maintext) { if (window.clipboardData) { window.clipboardData.setData("Text", maintext) return true; } else if (window.netscape) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); if (!clip) return false; var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) return false; trans.addDataFlavor('text/unicode'); var str = new Object(); var len = new Object(); var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); var copytext=maintext; str.data=copytext; trans.setTransferData("text/unicode",str,copytext.length*2); var clipid=Components.interfaces.nsIClipboard; if (!clip) return false; clip.setData(trans,null,clipid.kGlobalClipboard); return true; } return false; } //返回剪贴板的内容 function getClipboard() { if (window.clipboardData) { return(window.clipboardData.getData('Text')); } else if (window.netscape) { netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); if (!clip) return; var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); if (!trans) return; trans.addDataFlavor('text/unicode'); clip.getData(trans,clip.kGlobalClipboard); var str = new Object(); var len = new Object(); try { trans.getTransferData('text/unicode',str,len); } catch(error) { return null; } if (str) { if (Components.interfaces.nsISupportsWString) str=str.value.QueryInterface(Components.interfaces.nsISupportsWString); else if (Components.interfaces.nsISupportsString) str=str.value.QueryInterface(Components.interfaces.nsISupportsString); else str = null; } if (str) { return(str.data.substring(0,len.value / 2)); } } return null; }